# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from enum import Enum


class LanguageEnum(str, Enum):
    """Supported Languages for Chirp and Gemini TTS."""
    AR_XA = "ar-XA"
    BG_BG = "bg-BG"
    BN_IN = "bn-IN"
    CMN_CN = "cmn-CN"
    CS_CZ = "cs-CZ"
    DA_DK = "da-DK"
    DE_DE = "de-DE"
    EL_GR = "el-GR"
    EN_AU = "en-AU"
    EN_GB = "en-GB"
    EN_IN = "en-IN"
    EN_US = "en-US"
    ES_ES = "es-ES"
    ES_US = "es-US"
    FI_FI = "fi-FI"
    FR_CA = "fr-CA"
    FR_FR = "fr-FR"
    GU_IN = "gu-IN"
    HE_IL = "he-IL"
    HI_IN = "hi-IN"
    HU_HU = "hu-HU"
    ID_ID = "id-ID"
    IT_IT = "it-IT"
    JA_JP = "ja-JP"
    KN_IN = "kn-IN"
    KO_KR = "ko-KR"
    LT_LT = "lt-LT"
    LV_LV = "lv-LV"
    ML_IN = "ml-IN"
    MR_IN = "mr-IN"
    NB_NO = "nb-NO"
    NL_BE = "nl-BE"
    NL_NL = "nl-NL"
    PL_PL = "pl-PL"
    PT_BR = "pt-BR"
    RO_RO = "ro-RO"
    RU_RU = "ru-RU"
    SK_SK = "sk-SK"
    SR_RS = "sr-RS"
    SV_SE = "sv-SE"
    TA_IN = "ta-IN"
    TE_IN = "te-IN"
    TH_TH = "th-TH"
    TR_TR = "tr-TR"
    UK_UA = "uk-UA"
    VI_VN = "vi-VN"


class VoiceEnum(str, Enum):
    """Supported Prebuilt Voices for Gemini 2.5 Flash/Pro."""
    ACHERNAR = "Achernar"
    ACHIRD = "Achird"
    ALGENIB = "Algenib"
    ALGIEBA = "Algieba"
    ALNILAM = "Alnilam"
    AOEDE = "Aoede"
    AUTONOE = "Autonoe"
    CALLIRRHOE = "Callirrhoe"
    CHARON = "Charon"
    DESPINA = "Despina"
    ENCELADUS = "Enceladus"
    ERINOME = "Erinome"
    FENRIR = "Fenrir"
    GACRUX = "Gacrux"
    IAPETUS = "Iapetus"
    KORE = "Kore"
    LAOMEDEIA = "Laomedeia"
    LEDA = "Leda"
    ORUS = "Orus"
    PUCK = "Puck"
    PULCHERRIMA = "Pulcherrima"
    RASALGETHI = "Rasalgethi"
    SADACHBIA = "Sadachbia"
    SADALTAGER = "Sadaltager"
    SCHEDAR = "Schedar"
    SULAFAT = "Sulafat"
    UMBRIEL = "Umbriel"
    VINDEMIATRIX = "Vindemiatrix"
    ZEPHYR = "Zephyr"
    ZUBENELGENUBI = "Zubenelgenubi"
